
package com.hlkj.pay.app.order;
/*
 * Hlpay-Plus aggregate payment system.
 * Copyright (c) 2024-2025 Hlpay Team Copyright has the right of final interpretation.
 */

import java.util.List;

import javax.servlet.http.HttpServletRequest;

import com.hlkj.framework.common.pojo.CommonResult;
import com.hlkj.pay.infrastructure.model.order.RefundOrderDO;
import com.hlkj.pay.vo.order.req.RefundOrderParamReq;
import com.hlkj.pay.vo.order.req.RefundOrderQueryReq;
import com.hlkj.pay.vo.order.resp.RefundOrderResp;

/**
 * @author HlpayTeam
 * @date 2024/10/09 13:50
 */
public interface IRefundOrderAppService {

    /**
     * 订单退款
     * 
     * @param payOrderQueryReq
     * @return
     */
    CommonResult<RefundOrderResp> refundOrder(RefundOrderParamReq payOrderQueryReq);

    /**
     * 退款状态查询
     * 
     * @param payOrderQueryReq
     * @return
     */
    CommonResult<RefundOrderResp> queryRefundOrder(RefundOrderQueryReq payOrderQueryReq);

    /**
     * 退款回调
     * 
     * @param channelCode
     * @param accessCallBody
     * @return
     */
    String refundCallBack(String channelCode, String providerCode, HttpServletRequest request);

    String refundCallBack(String channelCode, String providerCode,String mchChannelCode, HttpServletRequest request);

    /**
     *
     * @param refundOrderNo
     * @return
     */
    boolean queryRefundStatus(String refundOrderNo);

    void queryRefundStatusList(List<RefundOrderDO> refundingList);

    /**
     * 
     */
    void syncRefundOrderStatus();
}
